<?php
class MySQLConnection{
	/**
	 * 
	 * @var String : l'adresse o� la BDD est install�e
	 */
	private $host;
	/**
	 * 
	 * @var String : l'administrateur de la base de donn�es
	 */
	private $user;
	/**
	 * 
	 * @var String : Mot de passe
	 */
	private $passwd;
	/**
	 * 
	 * @var int : l'id de la connexion
	 */
	private $id;
	/**
	 * 
	 * @var String : La BDD selectionn�e
	 */
	private $selected;
	
	/**
	 * Constructeur
	 * @param String/IPAdresse $host : l'adresse o� la BDD est install�e
	 * @param String $user : l'administrateur de la base de donn�es
	 * @param String $passwd :  Mot de passe de l'utilisateur
	 */
	function __construct(){
		$this->host=HOST;
		$this->user=USER;
		$this->passwd=PASSWD;
	}
	
	/**
	 * Cette fonction vous permet de se connecter � la BDD pass�e comme argument
	 * @param String $db : BDD 
	 */
	public function connect(){
		$this->id=mysql_connect($this->host,$this->user,$this->passwd) or die("Connexion impossible ");
		$this->selected=mysql_select_db(DATA_BASE,$this->id) or die("Impossible de s�lectionner la base ".$db." : ".mysql_error($this->id));
	}

	/**
	 * Fonction permettant d'�xecuter une requete SQL
	 * @param String $query : la requete SQL � �xecuter
	 * @return Result : Le resultat de la requete 'query' en cas de 'select'
	 */
	public function executeQuery($query){
		$result=mysql_query($query,$this->id) or die("Impossible d'�xecuter la requette : ".mysql_error($this->id));
		return $result;

	}
	

	/**
	 * Fonction permettant de collecter les resultats de l'execution de la requete
	 * @param $result : Le resultat de la fonction executeQuery 
	 * @return Un Tableau associatif � une ou deux dimensions selon la requete 
	 */
	public function fetch_array_assoc($result){
			if($result)
		{
			$array=array();
			$i=0;
			while($row=mysql_fetch_assoc($result))
			{
				$array[$i]=$row;
				$i++;
			}
			return $array;
			
		}
	}
	
	/**
	 * Fonction permettant de collecter les resultats de l'execution de la requete
	 * @param $result : Le resultat de la fonction executeQuery 
	 * @return Un Tableau index� � une ou deux dimensions selon la requete 
	 */
	public function fetch_array_row($result){
			if($result)
		{
			$array=array();
			$i=0;
			while($row=mysql_fetch_row($result))
			{
				$array[$i]=$row;
				$i++;
			}
			return $array;
			
		}
	}
	
	/**
	 * Chaque appel de cette m�thode permet de r�cuperer un tableau associatif index� � une dimension 
	 * correspond � chaque enregistrement 
	 * @param $result : R�sultat de l'execution de la requete
	 */
	public function fetch_assoc_line($result){
		if($result)
		return mysql_fetch_assoc($result);
	}
	
	/**
	 * Chaque appel de cette m�thode permet de r�cuperer un tableau index� � une dimension 
	 * correspond � chaque enregistrement 
	 * @param $result : R�sultat de l'execution de la requete
	 */
	public function fetch_row_line($result){
		if($result)
		return mysql_fetch_row($result);		
	}

	/**
	 * cette fonction ferme la connexion
	 */
	public function close(){
		mysql_close($this->id);
	}
	
	/**
	 * Destructeur
	 */
	public function __destruct(){
	//	mysql_close($this->id);
	}
}


